package day.day10;

import java.util.LinkedList;
import java.util.Queue;

import org.junit.Test;

/**
 * 	队列的演示：排队
 * @author Administrator
 *
 */
public class QuqueDemo {

	/**
	 * 	队列的获取
	 */
	@Test
	public void demo1() {
		
//		Queue<String> q = new Queue<>(); 接口
		
		Queue<String> q = new LinkedList<String>(); 
	}
	
	/**
	 * 	增加
	 */
	@Test
	public void demo2() {
		
		Queue<String> q = new LinkedList<String>();
		// add
		q.add("张三");
		q.add("李四");
		q.add("王五");
		System.out.println(q);
		
		// offer
		q.offer("小明");
		q.offer("小李");
		q.offer("小红");
		System.out.println(q);
		
		// add可能会抛异常，offer不会抛异常
	}
	
	/**
	 * 	演示取出
	 * 		取出的差别：
	 * 			1.remove，删除队列第一个对象作为返回，可能抛异常
	 * 			2.poll，删除队列第一个对象作为返回，不会抛异常
	 * 			3.peek，获取队列第一个对象作为返回，不会删除元素
	 */	
	@Test
	public void demo3() {
		Queue<String> q = new LinkedList<String>();
		// add
		q.add("张三");
		q.add("李四");
		q.add("王五");
		System.out.println(q);
		
		// 取出
//		String name = q.remove(); // remove
//		String name = q.poll(); // poll
		String name = q.peek(); // peek
		System.out.println(q);
		System.out.println(name);
	}
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
}
